package com.algorithm.thePrimaryAlgorithm;

import org.junit.Test;

/**
 * 1768. 交替合并字符串
 * 已解答
 * 简单
 * 相关标签
 * 相关企业
 * 提示
 * 给你两个字符串 word1 和 word2 。请你从 word1 开始，通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长，就将多出来的字母追加到合并后字符串的末尾。
 *
 * 返回 合并后的字符串 。
 *
 *
 *
 * 示例 1：
 *
 * 输入：word1 = "abc", word2 = "pqr"
 * 输出："apbqcr"
 * 解释：字符串合并情况如下所示：
 * word1：  a   b   c
 * word2：    p   q   r
 * 合并后：  a p b q c r
 * 示例 2：
 *
 * 输入：word1 = "ab", word2 = "pqrs"
 * 输出："apbqrs"
 * 解释：注意，word2 比 word1 长，"rs" 需要追加到合并后字符串的末尾。
 * word1：  a   b
 * word2：    p   q   r   s
 * 合并后：  a p b q   r   s
 * 示例 3：
 *
 * 输入：word1 = "abcd", word2 = "pq"
 * 输出："apbqcd"
 * 解释：注意，word1 比 word2 长，"cd" 需要追加到合并后字符串的末尾。
 * word1：  a   b   c   d
 * word2：    p   q
 * 合并后：  a p b q c   d
 *
 */
public class StringSulotion1768 {
    public String mergeAlternately(String word1, String word2) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < word1.length(); i++) {
            char w1 = word1.charAt(i);
            sb.append(w1);
            if (i < word2.length()) {
                sb.append(word2.charAt(i));
            }
        }
        int min = Math.min(word1.length(), word2.length());
        if (word2.length() > min) {
            String substring = word2.substring(min, word2.length());
            sb.append(substring);
        }

        return sb.toString();
    }


    public String mergeAlternately1(String word1, String word2) {
        StringBuilder sb = new StringBuilder();
        int min = Math.min(word1.length(), word2.length());
        for (int i = 0; i < min; i++) {
            sb.append(word1.charAt(i)).append(word2.charAt(i));
        }
        sb.append(word1.substring(min)).append(word2.substring(min));

        return sb.toString();
    }

    @Test
    public void test(){
        String s = mergeAlternately("ab", "pq");
    }
}
